/*
 * $Id$
 */
package py.windmill.util;

import org.json.JSONArray;
import org.json.JSONObject;

/**
 *
 * @author myang
 */
public class JsonObject_ {

    public static String toString(final Object obj)  {
        if (null == obj) {
            return null;
        }
        else if (obj instanceof String) {
            return (String)obj;
        }
        else {
            return new JSONObject(obj).toString();
        }
    }

    private JSONObject _jsonObject;
    private JSONArray _jsonArray;

    public static JsonObject_ object(final String source) {
        return new JsonObject_(new JSONObject(source));
    }

    public static JsonObject_ array(final String source) {
        return new JsonObject_(new JSONArray(source));
    }

    private JsonObject_(final JSONObject jo) {
        _jsonObject = jo;
    }

    private JsonObject_(final JSONArray ja) {
        _jsonArray = ja;
    }

    public JsonObject_ getObject(final String k) {
        return new JsonObject_(_jsonObject.getJSONObject(k));
    }

    public JsonObject_ getArray(final String k) {
        return new JsonObject_(_jsonObject.getJSONArray(k));
    }

    public JsonObject_ getObject(final int i) {
        return new JsonObject_(_jsonArray.getJSONObject(i));
    }

    public JsonObject_ getArray(final int i) {
        return new JsonObject_(_jsonArray.getJSONArray(i));
    }

    public Object get(final String k) {
        return _jsonObject.get(k);
    }

    public String getString(final String key) {
        return _jsonObject.getString(key);
    }

    public int getInt(final String key) {
        return _jsonObject.getInt(key);
    }

    @Override
    public String toString() {
        return _jsonObject.toString();
    }
}
